يتم استخدام عامل التشغيل UNION لدمج مجموعة النتائج المكونة من عبارتين أو أكثر من عبارات SELECT.
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2
يحدد عامل التشغيل UNION القيم المميزة فقط افتراضيًا. للسماح بالقيم المكررة، استخدم UNION ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2
في هذا البرنامج التعليمي سوف نستخدم قاعدة البيانات الشهيرة "Northwind".
يوجد أدناه نموذج من الجدول "Customers" ("العملاء"):
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
والعينة من الجدول "Suppliers" ("الموردون"):
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country | Phone |
---|---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | Londona | EC1 4SD | UK | (171) 555-2222 |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA | (100) 555-4822 |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA | (313) 555-5735 |
4 | Tokyo Traders | Yoshi Nagase | 9-8 Sekimai Musashino-shi | Tokyo | 100 | Japan | (03) 3555-5011 |
5 | Cooperativa de Quesos 'Las Cabras' | Antonio del Valle Saavedra | Calle del Rosal 4 | Oviedo | 33007 | Spain | (98) 598 76 54 |
تحدد عبارة SQL التالية المدن (قيم مختلفة فقط) من جداول العملاء والموردين:
Run SQLSELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City
تحدد عبارة SQL التالية المدن (قيم مكررة أيضًا) من جدولي العملاء والموردين:
Run SQLSELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City
تحدد عبارة SQL التالية المدن الألمانية (قيم مختلفة فقط) من جدولي العملاء والموردين:
Run SQLSELECT City, Country FROM Customers
WHERE Country = 'Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country = 'Germany'
ORDER BY City
تحدد عبارة SQL التالية المدن الألمانية (أيضًا القيم المكررة) من جدولي العملاء والموردين:
Run SQLSELECT City, Country FROM Customers
WHERE Country = 'Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country = 'Germany'
ORDER BY City
يسرد بيان SQL التالي جميع العملاء والموردين:
Run SQLSELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers
لاحظ أن "AS Type" أعلاه هو اسم مستعار. تُستخدم الأسماء المستعارة لـ SQL لإعطاء جدول أو عمود اسمًا مؤقتًا. الاسم المستعار موجود فقط طوال مدة الطلب. لذلك، قمنا هنا بإنشاء عمود مؤقت يسمى "Type" يشير إلى ما إذا كانت جهة الاتصال "عميلًا" أو "بائعًا".